Guava এর Preconditions ক্লাসটি একটি গুরুত্বপূর্ণ ইউটিলিটি যা আপনাকে নির্দিষ্ট শর্তগুলি (conditions) পরীক্ষা করতে সাহায্য করে, বিশেষ করে যখন আপনি আপনার কোডে ইনপুট ভ্যালু বা অবস্থা যাচাই করতে চান। এটি null চেক, রেঞ্জ চেক, বা শর্ত পূর্ণ না হলে ব্যতিক্রম (exception) ছোড়ার জন্য ব্যবহার করা হয়। Guava এর Preconditions ক্লাসটি আপনার কোডকে আরও ক্লিন, পাঠযোগ্য এবং বাগ-ফ্রি রাখে।
Preconditions ক্লাসের বৈশিষ্ট্য
Preconditions ক্লাসের মূল উদ্দেশ্য হলো ইনপুট ভ্যালু বা শর্ত পরীক্ষা করা এবং সেগুলোর জন্য উপযুক্ত ব্যতিক্রম (exception) ছোড়া। এর কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য হলো:
checkArgument():- এটি একটি শর্ত পরীক্ষা করে এবং শর্তটি সঠিক না হলে একটি
IllegalArgumentExceptionছোড়ে। - এটি ইনপুট ভ্যালু যাচাই করতে ব্যবহৃত হয়।
- এটি একটি শর্ত পরীক্ষা করে এবং শর্তটি সঠিক না হলে একটি
checkNotNull():- এটি কোনো অবজেক্ট
nullনা হওয়া নিশ্চিত করে। যদি অবজেক্টটিnullহয়, তবে এটি একটিNullPointerExceptionছোড়ে। - সাধারণত
nullচেক করার জন্য ব্যবহৃত হয়।
- এটি কোনো অবজেক্ট
checkState():- এটি কোনো অবস্থা (state) যাচাই করে এবং যদি অবস্থা সঠিক না হয়, তবে একটি
IllegalStateExceptionছোড়ে। - এটি সাধারণত কোনো প্রোগ্রামের স্থিতি বা অবস্থা যাচাই করতে ব্যবহৃত হয়।
- এটি কোনো অবস্থা (state) যাচাই করে এবং যদি অবস্থা সঠিক না হয়, তবে একটি
checkElementIndex()এবংcheckPositionIndex():- এগুলি সূচক (index) চেক করতে ব্যবহৃত হয়। এগুলির মাধ্যমে কোনো অ্যারে বা লিস্টের সঠিক ইনডেক্স যাচাই করা যায়।
checkNotNull():- এটি কোনো ভ্যালু
nullনা হওয়ার নিশ্চয়তা দেয়। যদিnullহয়, তবে এটি একটিNullPointerExceptionছোড়ে।
- এটি কোনো ভ্যালু
কেন Preconditions প্রয়োজন?
- কোডের সঠিকতা নিশ্চিত করা:
Preconditionsব্যবহারের মাধ্যমে আপনি কোডের শর্ত যাচাই করতে পারেন। এটি নিশ্চিত করে যে ফাংশনে প্রবেশের আগে আপনার ইনপুট ভ্যালু বা অবস্থা সঠিক এবং প্রত্যাশিত।
- বাগ কমানো:
- কোডে লজিক্যাল বাগ কমানোর জন্য
Preconditionsঅত্যন্ত কার্যকরী। এটি ইনপুট বা অবস্থা চেক করার মাধ্যমে রানটাইম ত্রুটি কমাতে সাহায্য করে।
- কোডে লজিক্যাল বাগ কমানোর জন্য
- অস্বাভাবিক অবস্থা এড়ানো:
- যখন কোডে কোনো অবস্থা অস্বাভাবিক হয়, তখন
Preconditionsএর মাধ্যমে ত্রুটি সনাক্ত করা যায় এবং ব্যতিক্রম ছোড়া হয়, যার মাধ্যমে অবস্থা মোকাবেলা করা সহজ হয়।
- যখন কোডে কোনো অবস্থা অস্বাভাবিক হয়, তখন
- পাঠযোগ্যতা উন্নয়ন:
Preconditionsএর মাধ্যমে কোড পরিষ্কার, সরল এবং পাঠযোগ্য হয়, কারণ এটি ইনপুট যাচাইয়ের জন্য ম্যানুয়ালি কোনো কোড লেখার প্রয়োজন কমায়। কোডের অন্য ডেভেলপাররা দ্রুত বুঝতে পারেন যে, কী ধরনের শর্ত যাচাই করা হচ্ছে।
- ডিবাগিং সহজ করা:
Preconditionsব্যতিক্রমগুলি আপনার কোডে ত্রুটি সনাক্ত করতে সহজ করে তোলে। যখন কোনো শর্ত পূর্ণ হয় না, তখন ব্যতিক্রমগুলি ডিবাগিংকে সহজ করে দেয়।
Guava Preconditions এর উদাহরণ
1. checkArgument() ব্যবহার করা
int age = -5;
Preconditions.checkArgument(age > 0, "Age must be positive: %s", age); // IllegalArgumentException
এখানে, যদি age ধনাত্মক না হয়, তবে এটি একটি IllegalArgumentException ছোড়ে এবং ত্রুটির বার্তা প্রদর্শন করে।
2. checkNotNull() ব্যবহার করা
String name = null;
Preconditions.checkNotNull(name, "Name cannot be null"); // NullPointerException
এখানে, যদি name null হয়, তবে একটি NullPointerException ছোড়া হবে।
3. checkState() ব্যবহার করা
boolean isInitialized = false;
Preconditions.checkState(isInitialized, "Object must be initialized before use"); // IllegalStateException
এখানে, যদি অবজেক্টটি ইনিশিয়ালাইজড না হয়, তবে একটি IllegalStateException ছোড়া হবে।
Preconditions ক্লাসটি কোডের নির্ভরযোগ্যতা এবং নিরাপত্তা নিশ্চিত করতে গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি কোডে অস্বাভাবিক অবস্থা দ্রুত সনাক্ত এবং সমাধান করতে সাহায্য করে।
Read more